using System;
using System.Collections;
using System.Runtime.InteropServices;
namespace BMC.ARSystem
{
	[ARStructTypeInfo(Name = "ARUserInfoStruct", NumberOfMembers = 6u), ClassInterface, Guid("d4f2e0e4-f05f-461f-b0be-3d5b80f324f5"), ProgId("BMC.ARSystem.UserInfo")]
	public class UserInfo
	{
		[ARStructMemTypeInfo(Name = "userName", Offset = 0u)]
		private string _userName;
		[ARStructMemTypeInfo(Name = "licenseInfo", Offset = 1u)]
		private ArrayList _licenseInfo;
		[ARStructMemTypeInfo(Name = "connectTime", Offset = 2u)]
		private DateTime _connectTime;
		[ARStructMemTypeInfo(Name = "lastAccess", Offset = 3u)]
		private DateTime _lastAccess;
		[ARStructMemTypeInfo(Name = "defaultNotifyMech", Offset = 4u)]
		private uint _defaultNotifyMech;
		[ARStructMemTypeInfo(Name = "emailAddr", Offset = 5u)]
		private string _emailAddr;
		public string UserName
		{
			get
			{
				return this.Name;
			}
			set
			{
				this.Name = value;
			}
		}
		public string Name
		{
			get
			{
				return this._userName;
			}
			set
			{
				this._userName = value;
			}
		}
		public ArrayList UserLicenses
		{
			get
			{
				return this._licenseInfo;
			}
			set
			{
				this._licenseInfo = value;
			}
		}
		public DateTime ConnectionTime
		{
			get
			{
				return this._connectTime;
			}
			set
			{
				this._connectTime = value;
			}
		}
		public DateTime LastAccessTime
		{
			get
			{
				return this._lastAccess;
			}
			set
			{
				this._lastAccess = value;
			}
		}
		public uint DefaultNotifyMechanism
		{
			get
			{
				return this._defaultNotifyMech;
			}
			set
			{
				this._defaultNotifyMech = value;
			}
		}
		public string EmailAddress
		{
			get
			{
				return this._emailAddr;
			}
			set
			{
				this._emailAddr = value;
			}
		}
		public UserInfo()
		{
		}
		internal UserInfo(object[] rawData, Server server)
		{
			int[] indexSpec = new int[1];
			this.Name = (string)Util.GetAt(rawData, indexSpec);
			this.UserLicenses = ARTypeMgr.Instance.ArrayListFromVariant(typeof(UserLicense), (object[])Util.GetAt(rawData, new int[]
			{
				1
			}), server);
			this.ConnectionTime = Util.GetDateTime(Convert.ToUInt32(Util.GetAt(rawData, new int[]
			{
				2
			})));
			this.LastAccessTime = Util.GetDateTime(Convert.ToUInt32(Util.GetAt(rawData, new int[]
			{
				3
			})));
			this.DefaultNotifyMechanism = Convert.ToUInt32(Util.GetAt(rawData, new int[]
			{
				4
			}));
			this.EmailAddress = (string)Util.GetAt(rawData, new int[]
			{
				5
			});
		}
		internal static UserInfo createInstance(object[] rawData, Server server)
		{
			return new UserInfo(rawData, server);
		}
	}
}
